package sad_G212;

import java.io.FileReader;
import java.io.IOException;

import weka.core.Instances;
import weka.filters.Filter;
import weka.filters.unsupervised.instance.Randomize;

public class Datos {

	private Instances datos = null;

	public Datos(FileReader pFr){
		cargarInstancias(pFr);
		datos.setClassIndex(datos.numAttributes()-1); //1.6 Seleccionar la clase
	}

	/**
	 * 1.3 Cargar las instancias del archivo
	 * @param pFr
	 * @param pData
	 * @return
	 */
	public void cargarInstancias(FileReader pFr){
		try {
			datos = new Instances(pFr);

		} catch (IOException e) {
			System.out.println("ERROR: Revisar contenido del fichero de datos");
		}
	}

	/**
	 * 1.4 Mezclar Instancias cargadas
	 * @param pData
	 * @throws Exception
	 */
	public void mezclarInstancias(){

		try {
			Randomize mezclar = new Randomize();
			mezclar.setRandomSeed(48);
			mezclar.setInputFormat(datos);
			datos = Filter.useFilter(datos, mezclar);
		} catch (Exception e) {
			System.out.println("Error al efectuar operaciones con los datos");
		}

	}

	public Instances getDatos(){
		return datos;
	}
	
	public int getNumInstancias(){
		return datos.numInstances();
	}
	
	public int getNumClases(){
		return datos.numClasses();
	}

}
